\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context}{\section{strange.\-extensions.\-context.\-impl.\-Cross\-Context Class Reference}
\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context}\index{strange.\-extensions.\-context.\-impl.\-Cross\-Context@{strange.\-extensions.\-context.\-impl.\-Cross\-Context}}
}


Provides the capabilities that allow a \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_context}{Context} to communicate across the \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_context}{Context} boundary.  


Inheritance diagram for strange.\-extensions.\-context.\-impl.\-Cross\-Context\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.925810cm]{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a3b20d71f373c4ec317258668711f2824}{{\bfseries Cross\-Context} (object view)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a3b20d71f373c4ec317258668711f2824}

\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_abbd25b2a2ffe72468f544b3c4416a505}{{\bfseries Cross\-Context} (object view, \hyperlink{namespacestrange_1_1extensions_1_1context_1_1api_a6e67a548377c1491bddc3a81c0f312c5}{Context\-Startup\-Flags} flags)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_abbd25b2a2ffe72468f544b3c4416a505}

\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_af51275e41fbaeac5b484517cc78817c7}{{\bfseries Cross\-Context} (object view, bool auto\-Mapping)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_af51275e41fbaeac5b484517cc78817c7}

\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_ab12586e3d3dd4797f553090512e4a8e5}{override \hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_context}{I\-Context} \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_ab12586e3d3dd4797f553090512e4a8e5}{Add\-Context} (\hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_context}{I\-Context} context)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_ab12586e3d3dd4797f553090512e4a8e5}

\begin{DoxyCompactList}\small\item\em Add another \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_context}{Context} to this one. \end{DoxyCompactList}\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a6361c6910225f255cb8a38be8afd475b}{virtual void \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a6361c6910225f255cb8a38be8afd475b}{Assign\-Cross\-Context} (\hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_cross_context_capable}{I\-Cross\-Context\-Capable} child\-Context)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a6361c6910225f255cb8a38be8afd475b}

\begin{DoxyCompactList}\small\item\em Add cross-\/context functionality to a child context being added. \end{DoxyCompactList}\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a7158b3ee84a563ed0f069f25faa626c6}{virtual void \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a7158b3ee84a563ed0f069f25faa626c6}{Remove\-Cross\-Context} (\hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_cross_context_capable}{I\-Cross\-Context\-Capable} child\-Context)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a7158b3ee84a563ed0f069f25faa626c6}

\begin{DoxyCompactList}\small\item\em Clean up cross-\/context functionality from a child context being removed. \end{DoxyCompactList}\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a9d89f38a223f4e3e6c9f5142bcb5c0b1}{override \hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_context}{I\-Context} \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a9d89f38a223f4e3e6c9f5142bcb5c0b1}{Remove\-Context} (\hyperlink{interfacestrange_1_1extensions_1_1context_1_1api_1_1_i_context}{I\-Context} context)}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a9d89f38a223f4e3e6c9f5142bcb5c0b1}

\begin{DoxyCompactList}\small\item\em Remove a context from this one. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a93b6bb362ee0dd4e26f598667bb94c78}{override void \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a93b6bb362ee0dd4e26f598667bb94c78}{add\-Core\-Components} ()}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a93b6bb362ee0dd4e26f598667bb94c78}

\begin{DoxyCompactList}\small\item\em Override to add componentry. Or just extend \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_m_v_c_s_context}{M\-V\-C\-S\-Context}. \end{DoxyCompactList}\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a0983ddcfb551f76e2a15660d24c93dd8}{override void \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a0983ddcfb551f76e2a15660d24c93dd8}{instantiate\-Core\-Components} ()}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a0983ddcfb551f76e2a15660d24c93dd8}

\begin{DoxyCompactList}\small\item\em Override to instantiate componentry. Or just extend \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_m_v_c_s_context}{M\-V\-C\-S\-Context}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{interfacestrange_1_1extensions_1_1dispatcher_1_1eventdispatcher_1_1api_1_1_i_event_dispatcher}{I\-Event\-Dispatcher} \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a00c68512ad80d15236954614f223820e}{\-\_\-cross\-Context\-Dispatcher}
\begin{DoxyCompactList}\small\item\em A specific instance of Event\-Dispatcher that communicates across multiple contexts. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Properties}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_aa9e5959a8c384f30821f024a6342da1d}{\hyperlink{interfacestrange_1_1extensions_1_1injector_1_1api_1_1_i_cross_context_injection_binder}{I\-Cross\-Context\-Injection\-Binder} \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_aa9e5959a8c384f30821f024a6342da1d}{injection\-Binder}\hspace{0.3cm}{\ttfamily  \mbox{[}get, set\mbox{]}}}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_aa9e5959a8c384f30821f024a6342da1d}

\begin{DoxyCompactList}\small\item\em A Binder that handles dependency injection binding and instantiation. \end{DoxyCompactList}\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_aa020f2f7a4dbc95dd6df440197d0349e}{virtual \hyperlink{interfacestrange_1_1extensions_1_1dispatcher_1_1api_1_1_i_dispatcher}{I\-Dispatcher} {\bfseries cross\-Context\-Dispatcher}\hspace{0.3cm}{\ttfamily  \mbox{[}get, set\mbox{]}}}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_aa020f2f7a4dbc95dd6df440197d0349e}

\item 
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_acaa1de297f6c13a502f384a5cb20b596}{virtual \hyperlink{interfacestrange_1_1framework_1_1api_1_1_i_binder}{I\-Binder} {\bfseries cross\-Context\-Bridge}\hspace{0.3cm}{\ttfamily  \mbox{[}get, set\mbox{]}}}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_acaa1de297f6c13a502f384a5cb20b596}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Provides the capabilities that allow a \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_context}{Context} to communicate across the \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_context}{Context} boundary. 

Specifically, \hyperlink{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context}{Cross\-Context} provides
\begin{DoxyItemize}
\item A Cross\-Context\-Injection\-Binder that allows injections to be shared cross-\/context
\item An Event\-Dispatcher that allows messages to be sent between Contexts
\item Methods (the I\-Cross\-Context\-Capable A\-P\-I) for adding and removing the hooks between Contexts. 
\end{DoxyItemize}

\subsection{Member Data Documentation}
\hypertarget{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a00c68512ad80d15236954614f223820e}{\index{strange\-::extensions\-::context\-::impl\-::\-Cross\-Context@{strange\-::extensions\-::context\-::impl\-::\-Cross\-Context}!\-\_\-cross\-Context\-Dispatcher@{\-\_\-cross\-Context\-Dispatcher}}
\index{\-\_\-cross\-Context\-Dispatcher@{\-\_\-cross\-Context\-Dispatcher}!strange::extensions::context::impl::CrossContext@{strange\-::extensions\-::context\-::impl\-::\-Cross\-Context}}
\subsubsection[{\-\_\-cross\-Context\-Dispatcher}]{\setlength{\rightskip}{0pt plus 5cm}{\bf I\-Event\-Dispatcher} strange.\-extensions.\-context.\-impl.\-Cross\-Context.\-\_\-cross\-Context\-Dispatcher\hspace{0.3cm}{\ttfamily [protected]}}}\label{classstrange_1_1extensions_1_1context_1_1impl_1_1_cross_context_a00c68512ad80d15236954614f223820e}


A specific instance of Event\-Dispatcher that communicates across multiple contexts. 

An event sent across this dispatcher will be re-\/dispatched by the various context-\/wide dispatchers. So a dispatch to other contexts is simply

{\ttfamily cross\-Context\-Dispatcher.\-Dispatch(\-M\-Y\-\_\-\-E\-V\-E\-N\-T, payload)};

Other contexts don't need to listen to the cross-\/context dispatcher as such, just map the necessary event to your local context dispatcher and you'll receive it. 

The documentation for this class was generated from the following file\-:\begin{DoxyCompactItemize}
\item 
Strange\-Io\-C/scripts/strange/extensions/context/impl/Cross\-Context.\-cs\end{DoxyCompactItemize}
